#ifndef QMCP_H_
#define QMCP_H_

#include "bsp.h"

/**
 * @addtogroup QMC_API
 * @{
 */

/**
 * @brief 初始化 QMC 磁场传感器
 *
 * 包括 IIC 硬件初始化以及配置传感器。同时检测是否存在 QMC 设备。
 *
 * @return 初始化结果
 * @retval 0 正常
 * @retval 1 没有 QMC 设备
 * @retval 2 初始化失败
 */
uint8_t QMC5883P_Init(void);

/**
 * @brief 读取 QMC 磁场传感器原始数据
 *
 * @param[out] x 读取到的X磁场信息
 * @param[out] y 读取到的Y磁场信息
 * @param[out] z 读取到的Z磁场信息
 * @return 读取结果
 * @retval 0 正常
 * @retval 1 读取失败
 */
uint8_t QMC5883P_ReadMagRaw(int16_t* x,int16_t* y,int16_t* z);

/**
 * @brief 读取 QMC 磁场传感器数据状态
 *
 * @param[out] status 读取到的状态信息 2-数据超量程 1-者未准备好 0-数据准备完成
 * @return 读取结果
 * @retval 0 正常
 * @retval 1 读取失败
 */
uint8_t QMC5883P_GetStatus(uint8_t* status);

/** @} */ // end of QMC_API

#endif /* QMCP_H_*/
